import request from '@/utils/request'

// 封装获取员工列表的请求
export function getEmployeeList(params) {
  return request({
    url: '/sys/user',
    params
  })
}

// 封装批量导出员工Excel的请求
// 这里要注意返回的响应收到的数据不是JSON字符串了，而是一个二进制的文件流，那么要改变接收数据的类型
export function exportEmployee() {
  return request({
    url: '/sys/user/export',
    // 改变接收数据的类型
    responseType: 'blob'  // 使用blob格式接收二进制文件流
  })
}

// 封装下载 导入员工模板的请求
export function importDemo() {
  return request({
    url: '/sys/user/import/template',
    responseType: 'blob' // 使用blob格式接收二进制文件流
  })
}

// 封装导入员工上传Excel的请求
export function uploadExcel(data) {
  return request({
    url: '/sys/user/import',
    method: 'post',
    data  // 数据类型是multipart/form-data 类型，因为上传的是文件类型
  })
}

// 封装删除员工的请求
export function deleteEmployee(id) {
  return request({
    url: `/sys/user/${id}`,
    method: 'delete'
  })
}

// 封装新增员工的请求
export function addEmployee(data) {
  return request({
    url: '/sys/user',
    method: 'post',
    data
  })
}

// 封装获取员工详细信息请求
export function getEmployeeDetail(id) {
  return request({
    url: `/sys/user/${id}`
  })
}

// 封装修改员工请求
export function updateEmployee(data) {
  return request({
    url: `/sys/user/${data.id}`,
    method: 'put',
    data
  })
}

// 封装获取已启用的角色列表的请求
export function getWorkableRoleList() {
  return request({
    url: '/sys/role/list/enabled'
  })
}

// 封装分配员工角色的请求
export function assignRoles(data) {
  return request({
    url: '/sys/user/assignRoles',
    method: 'put',
    data
  })
}